Dynamicke vytvareni controls na formulari

Otázka od: Honza

14. 9. 2004 17:57

Potrebuji dynamicky na formulari vytvorit dalsi zalozku PageControl, do ni
umistit komponentu TreeView a obsluhovat jeji udalosti.
Nevim, jak toho dosahnout.
Lze to vubec udelat ?

Verze D6

Diky Honza

Odpovedá: Vit Krska

15. 9. 2004 7:20


>Potrebuji dynamicky na formulari vytvorit dalsi zalozku PageControl, do ni
umistit komponentu TreeView a obsluhovat jeji udalosti.

mrkni na
http://www.sunncity.com/Tutorial/Creating_Object_On_The_Fly.html
>
>Verze D6
>
>Diky Honza
>

= = = = = = = = = = = = = = = = = = = =
   
Vit Krska
vit.krska@del.cz
2004-09-15


Odpovedá: Petr Daricek

15. 9. 2004 7:00

Ahoj,
  jasne ze to jde bude to asi neco takoveho:

var TabSheet2:TTabSheet;
    TreeView:TTreeView;
begin
  TabSheet2:=TTabSheet.Create(PageControl1);
  Tabsheet2.PageControl:=PageControl1;
  Tabsheet2.TabVisible := true;//Tohle myslim neni nutne
  TabSheet2.Caption:='NEco';

  TreeView:=TTreeView.Create(TabSheet2);
  TreeView.Parent:=TabSheet2;
  TreeView.Align:=alClient;

  TreeView.OnClick:= //Zde priradis proceduru ktera ma deklaraci odpovidajici
udalosti, v tomto pripade TNotifyEvent
end.

        Petr


Odpovedá: Honza

15. 9. 2004 19:55

A pokud budu chtit v procedure obsluhy (jedna spolecna pro vsechny Treeview
na pagecontrol) on click poznat, ktery ze control obsluhu vola - jak na to ?
Honza

> Ahoj,
> jasne ze to jde bude to asi neco takoveho:
>
> var TabSheet2:TTabSheet;
> TreeView:TTreeView;
> begin
> TabSheet2:=TTabSheet.Create(PageControl1);
> Tabsheet2.PageControl:=PageControl1;
> Tabsheet2.TabVisible := true;//Tohle myslim neni nutne
> TabSheet2.Caption:='NEco';
>
> TreeView:=TTreeView.Create(TabSheet2);
> TreeView.Parent:=TabSheet2;
> TreeView.Align:=alClient;
>
> TreeView.OnClick:= //Zde priradis proceduru ktera ma deklaraci
odpovidajici udalosti, v tomto pripade TNotifyEvent
> end.
>
> Petr
>

Potrebuji dynamicky na formulari vytvorit dalsi zalozku PageControl, do ni
umistit komponentu TreeView a obsluhovat jeji udalosti.


Odpovedá: Robert Suska

15. 9. 2004 20:15

Ahoj

Pri vytvarani si ich nejako pomenuj. Vytvor si konstanty s ich novym
TComponentName. Napr

const
  const1 = 'TreeView1';

begin
TreeView:=TTreeView.Create(TabSheet2);
TreeView.Name := const1;
TreeView.Parent:=TabSheet2;
TreeView.Align:=alClient;

 a zo sendera metody click budes citat asi takto. if TTreeView(Sender).Name
= const1 then nejaky kod pre treeview1. Resp. takto to bude viac koser:
   if Sender is TTreeView then
      if (Sender as TTreeView).Name = const1 then
       nejaky kod......

Robo

>A pokud budu chtit v procedure obsluhy (jedna spolecna pro vsechny Treeview
> na pagecontrol) on click poznat, ktery ze control obsluhu vola - jak na to
> ?
> Honza